EPSS Viewer is a PySide6-based desktop GUI application that provides a visual representation of Exploit Prediction Scoring System (EPSS) data for CVEs (Common Vulnerabilities and Exposures). It allows users to input CVE identifiers, fetch EPSS scores from the FIRST.org API, and visualize the results on a bell curve.
- Input CVEs: Add and manage a list of CVEs through the GUI.
- EPSS Score Calculation: Fetch EPSS scores and percentiles dynamically from the FIRST.org API.
- Bell Curve Visualization: Display EPSS scores on a bell curve for better understanding of the distribution.
- Interactive GUI: Easy-to-use interface with modern design and dark theme.
- Python 3.8 or higher.
- Virtual environment tool (e.g.,
venv).
-
Clone the Repository
git clone https://github.com/Andrewliera/epss_gui cd epss-viewer -
Set Up Virtual Environment
python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate
-
Install Dependencies
pip install -r requirements.txt
-
Run the Application
python main.py
- Launch the application.
- Enter a CVE (e.g.,
CVE-2024-1234) in the input field and click Add CVE. - Select a CVE from the list and click Calculate to fetch the EPSS score.
- View the EPSS score and percentile displayed below the bell curve.
.
├── epss_viewer.py # Main application code
├── requirements.txt # Python dependencies
└── README.md # Project documentation
- PySide6: For building the graphical user interface.
- Matplotlib: For visualizing the bell curve.
- Requests: For fetching data from the EPSS API.
- NumPy: For mathematical operations.
Refer to requirements.txt for the complete list.
EPSS Viewer uses the FIRST.org EPSS API to retrieve EPSS data. The application dynamically fetches scores and percentiles for CVEs based on the current date.
Example API Call:
GET https://api.first.org/data/v1/epss?cve=<CVE-ID>&curr_date=<YYYY-MM-DD>
-
Error: Missing Dependencies: Ensure all dependencies are installed by running:
pip install -r requirements.txt
-
Error Fetching EPSS Data: Check your internet connection and verify that the CVE ID is valid.
Contributions are welcome! Feel free to open issues or submit pull requests.
- FIRST.org for the EPSS API.
- SimplyCyber community for introducing me to the EPSS API
- The Python and PySide6 communities for their fantastic tools.
Thanks!